Skip to content

Fix: move typing_extensions import under TYPE_CHECKING#38

Merged
vgvoleg merged 1 commit into
mainfrom
fix/typing-extensions-dependency
May 7, 2026
Merged

Fix: move typing_extensions import under TYPE_CHECKING#38
vgvoleg merged 1 commit into
mainfrom
fix/typing-extensions-dependency

Conversation

@vgvoleg
Copy link
Copy Markdown
Member

@vgvoleg vgvoleg commented May 7, 2026

Summary

Fixes #37.

cursors.py imported Self from typing_extensions at module level, but typing-extensions was not declared as an explicit dependency. This broke with Poetry 2.x on Python 3.12+, where the package is not installed (its marker is computed as python_version < "3.11" from transitive deps).

Fix: since from __future__ import annotations is already present, Self is only used in type annotations that are never evaluated at runtime. Moving the import under if TYPE_CHECKING: eliminates the runtime dependency entirely — no changes to pyproject.toml needed.

Changes

  • ydb_dbapi/cursors.py: moved from typing_extensions import Self under if TYPE_CHECKING:

Test plan

  • python -c "import ydb_dbapi" succeeds on Python 3.12+ without typing-extensions installed
  • ruff check passes
  • mypy passes

@vgvoleg vgvoleg merged commit 9e8c93d into main May 7, 2026
6 checks passed
@vgvoleg vgvoleg deleted the fix/typing-extensions-dependency branch May 7, 2026 18:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

typing-extensions not declared as dependency, breaks with Poetry 2.x on Python 3.12+

1 participant